package cn.yotta.user.core.server.manager.token;

import cn.yotta.user.core.server.dto.token.TokenDto;
import cn.yotta.user.core.server.dto.user.UserDto;

/**
 * @author wyaoyao
 * @date 2023/3/9 18:15
 */
public interface TokenManager {


    /**
     *  根据登录用户信息生成token
     * @param userDto 登录用户信息
     * @param expireSecond token过期时间，单位为秒
     * @return Token信息
     */
    TokenDto generate(UserDto userDto, Integer expireSecond);

    /**
     * 根据token返回当前登录用户上下文
     * @param token 用户登录token
     * @return 当前登录用户
     */
    UserDto findLoginUserByToken(String token);


    /**
     * 用户登出
     * @param token token
     */
    void loginOut(String token);

}